readBytes{
  long l=Decoders.readLong(is);
  int size=(int)l;
  ByteBuf buffer=is.readSlice(size);
  int cr=is.readByte();
  int lf=is.readByte();
  if (cr != Decoders.CR || lf != Decoders.LF) {
}
receive{
  int code=is.readByte();
case StatusReply.MARKER:
      String status=is.readBytes(is.bytesBefore(ByteBufIndexFinder.CRLF)).toString(Charsets.UTF_8);
      is.skipBytes(2);
      return new StatusReply(status);
case ErrorReply.MARKER:
    String error=is.readBytes(is.bytesBefore(ByteBufIndexFinder.CRLF)).toString(Charsets.UTF_8);
    is.skipBytes(2);
    return new ErrorReply(error);
case IntegerReply.MARKER:
  return new IntegerReply(Decoders.readLong(is));
case BulkReply.MARKER:
return new BulkReply(readBytes(is));
case MultiBulkReply.MARKER:
return decodeMultiBulkReply(is);
}
checkpoint{ }
decodeMultiBulkReply{
      reply=new MultiBulkReply(this,is);
    return reply;
}
decode{ }
